from abc import ABC, abstractmethod
from typing import List, Dict

class BaseVectorSearcher(ABC):
    """Base class for search implementations"""
    
    @abstractmethod
    def search_by_embedding(self, text: List[str], top_k: int = 5) -> List[Dict]:
        """
        Search documents using text input by first converting to embeddings
        Args:
            text: Input text or list of texts to search with
            top_k: Number of results to return per embedding
        Returns:
            List of matching documents
        """
        pass
